
package Datos;

import Negocio.Conjunto;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;


public class ConjuntoDB {
    public boolean grabar(Conjunto conjunto) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query = "insert into conjunto(descripcion, comentario, codigo_foto, id, numero_usos) values('"+conjunto.getDescripcion()+"', '"+conjunto.getComentario()+", " + conjunto.getFoto().getCodigo() +", " + conjunto.getId() +", " + conjunto.getNumero_usos() + "')";
        Boolean resultado = db.ingreso(query);
        db.cerrarConexion();
        return resultado;
    }
    
    
        public int comentario(String comentario, int id) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="update conjunto set comentario='" + comentario + "' where id='" + id+"'";
        int resultado = db.modificacioneliminacion(query);
        db.cerrarConexion();
        return resultado;
    }
    
  public Conjunto buscar(int id) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from conjunto where id =" + id;        
        ResultSet resultado = db.seleccion(query);
        Conjunto conjunto=null;
        if (resultado!=null) {
            resultado.next();
            conjunto = new Conjunto();
            conjunto.setId(resultado.getInt("id"));           
            conjunto.setDescripcion(resultado.getString("descripcion"));
            conjunto.setComentario(resultado.getString("comentario"));
            conjunto.setNumero_usos(resultado.getInt("num_usos"));
        } 
        db.cerrarConexion();
        return conjunto;        
    }
  
  public ArrayList listar(int id) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="select * from conjunto where id = "+ id;
        ResultSet resultado = db.seleccion(query);
        Conjunto conjunto=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            conjunto = new Conjunto();
            conjunto.setId(resultado.getInt(3));           
            conjunto.setDescripcion(resultado.getString(1));
            conjunto.setComentario(resultado.getString(2));
            conjunto.setNumero_usos(resultado.getInt(4));
            todos.add(conjunto);
        }
        db.cerrarConexion();
        return todos;
    }
    
  /*public Conjunto buscarConjuntoNumUsos(String cedula, int num) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="{ ? = call buscarconjuntonumusos('"+cedula+"', "+num+") }";
        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Conjunto conjunto=null;
        Usuario_conjunto uc = null;
        if (resultado!=null) {
            resultado.next();
            conjunto = new Conjunto();
            conjunto.setId(resultado.getInt(1)); 
            conjunto.setDescripcion(resultado.getString(2));
            conjunto.setNumero_usos(resultado.getInt(3));
            conjunto.setComentario(resultado.getString(4));
         } 
        db.cerrarConexion();
        return conjunto;        
    }    
  
    public Conjunto buscarConjuntoFecha(String cedula, String fecha) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="{ ? = call buscarconjuntofecha('"+cedula+"', "+fecha+") }";
        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Conjunto conjunto=null;
        if (resultado!=null) {
            resultado.next();
            conjunto = new Conjunto();
            conjunto.setId(resultado.getInt(1)); 
            conjunto.setDescripcion(resultado.getString(2));
            conjunto.setNumero_usos(resultado.getInt(3));
            conjunto.setComentario(resultado.getString(4));
         } 
        db.cerrarConexion();
        return conjunto;        
    }    
    
    
    public Conjunto buscarConjuntoCalificacion(String cedula, int calificacion) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="{ ? = call buscarconjuntocalificacion('"+cedula+"', "+calificacion+") }";
        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Conjunto conjunto=null;
        if (resultado!=null) {
            resultado.next();
            conjunto = new Conjunto();
            conjunto.setId(resultado.getInt(1)); 
            conjunto.setDescripcion(resultado.getString(2));
            conjunto.setNumero_usos(resultado.getInt(3));
            conjunto.setComentario(resultado.getString(4));
         } 
        db.cerrarConexion();
        return conjunto;
        
    }    */  
    
     public ArrayList listarConjuntoFechaAsc(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="{ ? = call buscarconjuntofechaasc('"+cedula+"') }";
        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Conjunto conjunto=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            conjunto = new Conjunto(); 
            conjunto.setId(resultado.getInt(1));
            conjunto.setDescripcion(resultado.getString(2));
            conjunto.setNumero_usos(resultado.getInt(3));
            conjunto.setComentario(resultado.getString(4));
            todos.add(conjunto);
        }
        db.cerrarConexion();
        return todos;
    }
    
     public ArrayList listarConjuntoFechaDesc(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();

        String query="{ ? = call buscarconjuntofechadesc('"+cedula+"') }";
        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Conjunto conjunto=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            conjunto = new Conjunto();    
            conjunto.setId(resultado.getInt(1));
            conjunto.setDescripcion(resultado.getString(2));
            conjunto.setNumero_usos(resultado.getInt(3));
            conjunto.setComentario(resultado.getString(4));
            todos.add(conjunto);
        }
        db.cerrarConexion();
        return todos;
    }
         
         
    public ArrayList listarConjuntoNumUsosAsc(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="{ ? = call buscarconjuntonumusosasc('"+cedula+"') }";

        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Conjunto conjunto=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            conjunto = new Conjunto();    
            conjunto.setId(resultado.getInt(1));
            conjunto.setDescripcion(resultado.getString(2));
            conjunto.setNumero_usos(resultado.getInt(3));
            conjunto.setComentario(resultado.getString(4));
            todos.add(conjunto);
        }
        db.cerrarConexion();
        return todos;
    }
public ArrayList listarConjuntoNumUsosDesc(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="{ ? = call buscarconjuntonumusosdesc('"+cedula+"') }";
        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Conjunto conjunto=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            conjunto = new Conjunto();    
            conjunto.setId(resultado.getInt(1));
            conjunto.setDescripcion(resultado.getString(2));
            conjunto.setNumero_usos(resultado.getInt(3));
            conjunto.setComentario(resultado.getString(4));
            todos.add(conjunto);
        }
        db.cerrarConexion();
        return todos;
    }     
    
     public ArrayList listarConjuntoCalificacionAsc(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="{ ? = call buscarconjuntocalificacionasc('"+cedula+"') }";
        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Conjunto conjunto=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            conjunto = new Conjunto();    
            conjunto.setId(resultado.getInt(1));
            conjunto.setDescripcion(resultado.getString(2));
            conjunto.setNumero_usos(resultado.getInt(3));
            conjunto.setComentario(resultado.getString(4));
            todos.add(conjunto);
        }
        db.cerrarConexion();
        return todos;
    }

     
      public ArrayList listarConjuntoCalificacionDesc(String cedula) throws SQLException {
        OperacionesBase db = new OperacionesBase();
        String query="{ ? = call buscarconjuntocalificaciondesc('"+cedula+"') }";
        Connection var= db.db.getConnection();
        CallableStatement stmt = var.prepareCall(query);
        stmt.registerOutParameter(1, Types.OTHER);
        ResultSet resultado = db.callProcedure(stmt);
        Conjunto conjunto=null;
        ArrayList todos=new ArrayList();
        while (resultado.next()) {
            conjunto = new Conjunto();    
            conjunto.setId(resultado.getInt(1));
            conjunto.setDescripcion(resultado.getString(2));
            conjunto.setNumero_usos(resultado.getInt(3));
            conjunto.setComentario(resultado.getString(4));
            todos.add(conjunto);
        }
        db.cerrarConexion();
        return todos;
    }

}
